#pragma once
/*******************************************************************/
#include <string>
#include <vector>
/*******************************************************************/
#include "cv.h"
/*******************************************************************/
class CRecognizerObjects
{
public:
	CRecognizerObjects(void);
	virtual ~CRecognizerObjects(void);
	void SetClassName( std::string className ); 
	std::string GetClassName( void ); 
	double GetClassType( void ); 
	void   SetClassType( double value ); 
	void   SetStats( CvRect rect ); 
	CvRect GetStats( void ){return m_pRect;}; 
	void   SetRealWH( double width, double height ); 
	void   SetPixelCentroid( int x, int y );
	void   SetRealCentroid( double x, double y, double z ); 


	double*  GetRealCentroid( void );
	int GetPixelPosX( void ); 
	int GetPixelPosY( void ); 
	int GetPixelWidth( void ); 
	int GetPixelHeight( void ); 

	void Print( std::ostream& os ); 

	/*
		Also probably need the contour and an alpha matte. 
	*/
protected:
	std::string m_className;
	double m_classType; 
	double m_realCentroid[3];
	// NEED SURFACE NORMAL!!!!
	double m_rWidth;
	double m_rHeight;
	CvRect m_pRect; 
};
/*******************************************************************/
typedef std::vector<CRecognizerObjects> SRecObjVec;
typedef std::vector<CRecognizerObjects>::iterator SRecObjVecIter;
typedef std::vector<CRecognizerObjects>::reverse_iterator SRecObjVecRIter;
/*******************************************************************/